//! 表字段相关

/// 表内部字段类型
pub mod inner;
/// 表字段信息
#[derive(Debug,Clone)]
pub struct Field {
    /// 字段名称
    pub name: &'static str,
    /// 表字段名称，一般为字段名称的小写
    pub table_field_name: &'static str,
    /// 表字段类型
    pub date_type: FieldType,
    /// 表字段最大长度
    pub max_length: Option<u32>,
    /// 是否为主键
    pub pk: bool,
    /// 是否自动增长
    pub auto_increment: bool,
    /// 外键模型编号
    ///
    /// 如果当字段为外键，
    /// 从1开始，最大为10
    /// 分别对应Meta::FkModel1-FkModel10
    pub fk_model_no: Option<FkNo>,
    /// 是否允许为null
    /// 字段定义为Option的则解析为可为null
    pub null: bool,
    /// 表字段备注说明
    pub remark: Option<&'static str>,
}
#[derive(Debug,Clone)]
pub enum FieldType {
    Text,
    Number,
    Date,
    Time,
    DateTime,
    /// 其他自定义字段类型
    Other(&'static str),
}
#[derive(Debug,Clone)]
pub enum FkNo {
    One,
    Two,
    Three,
    Four,
    Five,
    Six,
    Seven,
    Eight,
    Night,
    Ten,
}
